1470f57f71fd44b053871c4314e9cba4a3f315b4,source_gen/jetbrains/mps/bootstrap/smodelLanguage/helgins/typeof_Property_HasValue_Simple_InferenceRule.java,typeof_Property_HasValue_Simple_InferenceRule,applyRule,#SNode#,21
Before Change
if(!((Boolean)Queries.CustomExpression_check_isAppliedTo_SPropertyAccess_simpleProperty(argument))) {
TypeChecker.getInstance().reportTypeError(argument, "\"'has value (simple)' is not expected here\"");
}
if(!((SLinkOperations.getTarget(argument, "value", true) == null))) {
TypeChecker.getInstance().getRuntimeSupport().check(SLinkOperations.getTarget(argument, "value", true));
if((Boolean)Queries.CustomExpression_check_isAppliedTo_SPropertyAccess_simpleStringProperty(argument)) {
if(!(TypeChecker.getInstance().getSubtypingManager().isSubtype(TypeChecker.getInstance().getRuntimeSupport().typeOf(SLinkOperations.getTarget(argument, "value", true)), new QuotationClass_5().createNode()))) {
TypeChecker.getInstance().reportTypeError(SLinkOperations.getTarget(argument, "value", true), "java.lang.String is expected");
}
}
if((Boolean)Queries.CustomExpression_check_isAppliedTo_SPropertyAccess_simpleIntegerProperty(argument)) {
if(!(TypeChecker.getInstance().getSubtypingManager().isSubtype(TypeChecker.getInstance().getRuntimeSupport().typeOf(SLinkOperations.getTarget(argument, "value", true)), new QuotationClass_6().createNode()))) {
TypeChecker.getInstance().reportTypeError(SLinkOperations.getTarget(argument, "value", true), "integer is expected");
}
}
if((Boolean)Queries.CustomExpression_check_isAppliedTo_SPropertyAccess_simpleBooleanProperty(argument)) {
After Change
TypeChecker.getInstance().getRuntimeSupport().createLessThanInequation(TypeChecker.getInstance().getRuntimeSupport().typeOf(value), new QuotationClass_6().createNode(), value);
} else
if(DataTypeUtil.isSimpleBoolean(((DataTypeDeclaration)SNodeOperations.getAdapter(dataType)))) {
TypeChecker.getInstance().getRuntimeSupport().createLessThanInequation(TypeChecker.getInstance().getRuntimeSupport().typeOf(value), new QuotationClass_7().createNode(), value);
} else
{
TypeChecker.getInstance().reportTypeError(argument, "unknown property datatype: " + dataType);